#include "login.h"
#include "flight_system.h"

// 项目名：航班管理系统
// 功能 1：用户登入和注册
// 功能 2：航班信息的增删改查
// 功能 3：买票和退票以及查看票
// 时间  ：2024年4月10日~2024年4月13日
// 作者  ：王星兴
// 电话  ：18075895757
// 邮箱  ：3014229916@qq.com

int main(int argc, char const *argv[])
{
    int flag_login = 100;
    flag_login = login(); // 登录账号
    if (flag_login == 0)  // 账号密码错误
    {
        return 0; // 直接结束
    }
    else if (flag_login == 1) // 登入成功
    {
        record *rl;
        init_record(&rl); // 初始化购票记录
        FILE *fp = fopen("flight_data.txt", "r");
        dList dl;
        init_dlist(&dl);
        read_file_data(fp, dl); // 读取文件信息
        int flag = MAX;         // 操作标志位
        while (flag != 0)       // 根据用户输入执行相应操作
        {
            // system("clear");//清屏
            print_menu();
            scanf("%d", &flag);
            while (flag < 0 || flag > 9) // 防止输入错误
            {
                printf("\e[32m输入错误,请重新输入数字(0~9):\e[0m");
                scanf("%d", &flag);
            }
            switch (flag)
            {
            case 1:
                puts("\e[32m增加航班\e[0m");
                insert_flight(dl);
                break;

            case 2:
                puts("\e[32m浏览航班\e[0m");
                print_dlist(dl);
                break;

            case 3:
                puts("\e[32m修改航班\e[0m");
                change_flight(dl);
                break;

            case 4:
                puts("\e[32m删除航班\e[0m");
                delete_flight(dl);
                break;

            case 5:
                puts("\e[32m查询航班路线\e[0m");
                find_flight(dl);
                break;

            case 6:
                puts("\e[32m航班排序\e[0m");
                sort_dlist(dl);
                break;

            case 7:
                puts("\e[32m购票\e[0m");
                buy_ticket(dl, rl);
                break;

            case 8:
                puts("\e[32m退票\e[0m");
                return_ticket(dl, rl);
                break;

            case 9:
                my_tickets(dl, rl);
                break;
            }
        }
        exit_system(); // 退出系统
        fclose(fp);

        fp = fopen("flight_data.txt", "w+");
        input_file(fp, dl);
        fclose(fp);
    }
    return 0;
}
